Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Config pipeline #1005

Merged
merged 46 commits into from
Nov 14, 2024
Merged

Config pipeline #1005

merged 46 commits into from
Nov 14, 2024

Conversation

godrei
Copy link
Contributor

@godrei godrei commented Oct 1, 2024

Checklist

Version

Requires a NO version update

Context

This PR merges the project's macOS and Linux CI workflows into a single Pipeline and switches to a repository stored bitrise.yml.

The new ci pripeline runs unit, integration and binary build tests in both Linux and macOS machines in parallel. The previous sequential CI workflows are converted into step bundles and executed in stacks specific workflows:

  • check workflow -> run_lint and run_unit_tests step bundles, executed in run_lint, run_unit_tests_macos and run_unit_tests_linux workflows
  • integration-test workflow -> run_integration_tests and run_docker_integration_tests steps bundles, executed in run_integration_tests_macos, run_integration_tests_linux and run_docker_integration_tests_linux workflows
  • test-binary-build workflow -> test_binary_build_macos and test_binary_build_linux

The new config's trigger map and release workflow is coming from the Bitrise.io stored bitrise.yml.

The new run_unit_tests and run_integration_tests step bundles are exporting test results for the testing adding.

@godrei godrei closed this Oct 1, 2024
@godrei godrei reopened this Oct 24, 2024
@godrei godrei marked this pull request as ready for review October 24, 2024 15:22
bitrise.yml Outdated
- bundle::run_integration_tests: { }
meta:
bitrise.io:
stack: osx-xcode-16.0.x
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about running on osx-xcode-latest, which is a pointer to the latest edge stack? We do this in some build platform projects, it has two benefits:

  1. Dogfoods the edge stacks, which often have experimental fixes and changes applied
  2. This stack ID will never be removed or become invalid, there is no need to manually update it after a stack gets deprecated

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 945ccd8

meta:
bitrise.io:
machine_type_id: elite-xl
stack: linux-docker-android-20.04 # TODO: Docker tests are failing on Ubuntu 22.04
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK, we have a ticket for this in the BE backlog

- script:
title: Skipping success
is_always_run: false
go install github.com/jstemmer/go-junit-report/v2@latest
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: would be good to pin the version

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, do we want to pin an exact version? Currently, we pin the major version 2 (github.com/jstemmer/go-junit-report/v2)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, that could be enough, but I also don't see any reason not to pin an exact version. A commit hash won't disappear from GitHub (well, it could be force-pushed, but let's hope it never happens)

bitrise.yml Outdated
is_always_run: false
go install github.com/jstemmer/go-junit-report/v2@latest
if [ "$(uname)" == "Linux" ] && command -v asdf >/dev/null && asdf plugin list | grep -q 'golang'; then
asdf reshim golang
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I usually just do asdf reshim golang || true, don't overthink it, this is Bash 😆

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated in a5d9d7d

@godrei godrei merged commit 094e471 into master Nov 14, 2024
7 of 10 checks passed
@godrei godrei deleted the config-pipeline branch November 14, 2024 09:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants